import utils from '@/utils/utils';
import store from '@/store';
import clApi from '@/api';
import clStorage from '@/utils/storage';



function login({success, fail}) {
    // 已有 已经授权
    if (store.state.baseInfo.token) {
        success(store.state);
        return;
    }

    // #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
    uni.getProvider({
        service: 'oauth',
        success: function (res) {
            /*微信登录*/
            if (~res.provider.indexOf('weixin')) {
                uni.login({
                    provider: 'weixin',
                    success: function (loginRes) {
                        const code = loginRes.code;
                        doLogin(code,  success);
                    },
                    fail: e => {
                        console.log(e);
                        fail && fail();
                        utils.toast('微信授权失败，请检查网络后重试');
                    },
                });
            }
        },
    });
    // #endif
}

function doLogin(code,success) {
    clApi.login.wxXCXCodeAutoLogin({
            data: {
                code: code
            }
        }
    )
        .then(res => {
            // console.log(17777, res);
            if (res.code === 200) {
                fetchStrom(res, success);
                if (res.data.loginFlag) {
                    fetchMemberInfo();
                }
            }
        });
}

/**
 * 获取会员详细信息
 */
function fetchMemberInfo() {
   // 在此获取用户基本信息
    clApi.member.loadMemberInfo()
        .then(res => {
            clStorage.setUserInfo(res.data)
        });
}

function fetchStrom(rest, success) {
    // 已登录，保存token
    clStorage.setAccessToken(rest.data.token || '')
    success();
}

export default {
    login
};
